package data;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
// Esta clase nos permite crear la BD, actualizarla, obtenerla en modo lectura/escritura, etc
public class ArticlesDbHelper extends SQLiteOpenHelper {
// Versi�n de la base de datos
private static final int DATABASE_VERSION = 7;
// Constructor p�blico que recibe como par�metro el contexto
public ArticlesDbHelper(Context context) {
// El tercer par�metro es null, un gestor para los pointers
// El �timo par�metro es la versi�n. Por defecto, una constante
super(context, ArticlesContract.DB_NAME, null, DATABASE_VERSION);
}
// Recibimos la BD, y en ella hay que crear las tablas
@Override
public void onCreate(SQLiteDatabase db) {
// En este m�todo se recibe la base de datos
createTableArticles(db);
}
// Se recibe una BD ya creada, con un n�mero de versi�n antiguo y uno nuevo.
// Aqu� se hacen las operaciones necesarias para actualizarla
// Se usa, por ejemplo, para a�adir tablas en una actualizaci�n de la aplicaci�n
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
createTableArticles(db);
}
private void createTableArticles(SQLiteDatabase db) {
// Si la tabla ya existe, eliminarla; as� se puede utilizar este m�todo tambi�n en el Upgrade
db.execSQL("DROP TABLE IF EXISTS " + ArticlesContract.Articles.TABLE_NAME);
// Creaci�n de la tabla Art�culos
db.execSQL("CREATE TABLE " + ArticlesContract.Articles.TABLE_NAME + "("
+ ArticlesContract.Articles._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ ArticlesContract.Articles.TITLE + " STRING,"
+ ArticlesContract.Articles.LINK + " STRING,"
+ ArticlesContract.Articles.PUB_DATE + " LONG,"
+ ArticlesContract.Articles.DESCRIPTION + " TEXT,"
+ ArticlesContract.Articles.CONTENT + " TEXT"
+ ")"
);
}
}